Fix irregular gdk_frame_clock_get_frame_time
authorDaniel van Vugt <daniel.van.vugt@canonical.com>
Fri, 15 Sep 2017 09:49:12 +0000 (17:49 +0800)
committerJeremy Bicha <jbicha@ubuntu.com>
Wed, 14 Feb 2018 13:02:52 +0000 (08:02 -0500)
commitc6901a8b950f156aaddf2ee8f8fb39440b7b9cfd
tree61cad41228dc9b0b6f557104ff852d5f684c526d
parentf82a6421f4c4716b50ed13463a3d43d69445638d
Fix irregular gdk_frame_clock_get_frame_time

This fixes stuttering in animations that rely on the regularity of
gdk_frame_clock_get_frame_time.

https://bugzilla.gnome.org/show_bug.cgi?id=787665

BEFORE
gdkgears:
58 FPS and visibly stuttering
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +17278μs, gdk_frame_clock_get_frame_time +17278μs
"paint" g_get_monotonic_time +17449μs, gdk_frame_clock_get_frame_time +17426μs
"paint" g_get_monotonic_time +17620μs, gdk_frame_clock_get_frame_time +17600μs

AFTER
gdkgears:
60 FPS and smoother
gnome-maps on a 59.95Hz monitor:
"paint" g_get_monotonic_time +18228μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +15010μs, gdk_frame_clock_get_frame_time +16680μs
"paint" g_get_monotonic_time +17134μs, gdk_frame_clock_get_frame_time +16680μs
gdk/gdkframeclockidle.c